/*
 * create:2016年4月16日 下午12:33:18
 * author:wangds  
 */
package net.wangds.comp.endpoint.http;

import net.wangds.common.processor.AbstractInputOutputProcessor;

/**
 * .
 * @author wangds
 *
 */
public abstract class AbstractHttpInputOutputProcessor<I,O> extends AbstractInputOutputProcessor<I,O> implements HttpInputOutputProcessor<I,O>{

  private HttpAccessContext context;

  /*
   * @see net.wangds.comp.endpoint.http.HttpInputOutputProcessor#setHttpAccessContext(net.wangds.comp.endpoint.http.HttpAccessContext)
   * @author wangds 2016年4月16日 下午12:33:59.
   */
  @Override
  public void setHttpAccessContext(HttpAccessContext ctx) {
    this.context = ctx;
  }

  /*
   * @see net.wangds.comp.endpoint.http.HttpInputOutputProcessor#getHttpAccessContext()
   * @author wangds 2016年4月16日 下午12:33:59.
   */
  @Override
  public HttpAccessContext getHttpAccessContext() {
    return this.context;
  }
  
  /*
   * @see net.wangds.common.processor.AbstractInputOutputProcessor#process(java.lang.Object)
   * @author wangds 2016年4月16日 下午1:00:54.
   */
  @Override
  protected O process(I in) throws Exception {
    return this.process(this.getHttpAccessContext(), in);
  }

  /**
   * .
   * @author wangds 2016年4月16日 下午12:36:53.
   * @param httpAccessContext
   * @param input2
   * @return
   */
  protected abstract O process(HttpAccessContext ctx, I in) throws Exception;
}
